package com.emeraldparser.parse;

import java.util.List;

import com.emeraldparser.util.Automaton;
import com.emeraldparser.util.Multitable;

public interface Parser<S> {

	Automaton<S, SymbolClass> automaton();

	/**
	 * 
	 * @return A multitable whose rows are parse states, whose columns are
	 *         look-ahead symbol sequences and whose values are actions.
	 *         For example, if the parser is LR(0), the column keys will be
	 *         zero-length lists. If the parser is LR(1), the column keys will
	 *         be one or zero-length lists.
	 */
	Multitable<S, List<SymbolClass>, Action> lookAheadActions();

}
